package models

import (
	"github.com/guregu/null"
	"gorm.io/gorm"
)

type Link struct {
	gorm.Model
	Id          int    `gorm:"column:id" json:"id"`
	UserId      int    `gorm:"column:user_id" json:"userId"`
	Name        string `gorm:"column:name" json:"name"`
	Url         string `gorm:"column:url" json:"url"`
	Description string `gorm:"column:description" json:"description"`
	Background  string `gorm:"column:background" json:"background"`
	IsCheck     int    `gorm:"column:is_check;default:0" json:"isCheck"`
	Email       string `gorm:"column:email" json:"email"`
	IsDeleted   int    `gorm:"column:is_deleted;default:0" json:"isDeleted"`
}
type LinkListVo struct {
	gorm.Model
	Id          int    `gorm:"column:id" json:"id"`
	UserName    string `gorm:"column:username" json:"userName"`
	Name        string `gorm:"column:name" json:"name"`
	Url         string `gorm:"column:url" json:"url"`
	Description string `gorm:"column:description" json:"description"`
	Background  string `gorm:"column:background" json:"background"`
	Email       string `gorm:"column:email" json:"email"`
	CreateTime  MyTime `gorm:"column:created_at" json:"createTime"`
	IsCheck     int    `gorm:"column:is_check;default:0" json:"isCheck"`
}
type LinkVo struct {
	gorm.Model
	Id          int    `gorm:"column:id" json:"id"`
	Name        string `gorm:"column:name" json:"name"`
	Url         string `gorm:"column:url" json:"url"`
	Description string `gorm:"column:description" json:"description"`
	Background  string `gorm:"column:background" json:"background"`
	Avatar      string `gorm:"column:avatar" json:"avatar"`
}
type LinkDto struct {
	gorm.Model
	Name        string `gorm:"column:name" json:"name"`
	Url         string `gorm:"column:url" json:"url"`
	Description string `gorm:"column:description" json:"description"`
	Background  string `gorm:"column:background" json:"background"`
	Email       string `gorm:"column:email" json:"email"`
}
type SearchLinkDto struct {
	gorm.Model
	UserName  string   `gorm:"column:username" json:"userName"`
	Name      string   `gorm:"column:name" json:"name"`
	IsCheck   null.Int `gorm:"column:is_check;default:0" json:"isCheck"`
	StartTime MyTime   `gorm:"-" json:"startTime"`
	EndTime   MyTime   `gorm:"-" json:"endTime"`
}
type LinkIsCheckDto struct {
	Id      int `gorm:"column:id" json:"id"`
	IsCheck int `gorm:"column:is_check;default:0" json:"isCheck"`
}

func (LinkDto) TableName() string {
	return "link"
}
func (Link) TableName() string {
	return "link"
}
func (LinkVo) TableName() string {
	return "link"
}
func (LinkListVo) TableName() string {
	return "link"
}
